<?php
require_once(dirname(dirname(__FILE__)) . '/app.php');
ini_set('date.timezone','Asia/Shanghai');
error_reporting(E_ERROR);
require_once dirname(__FILE__) ."/lib/WxPay.Api.php";
require_once dirname(__FILE__) .'/log.php';



//初始化日志
$logHandler= new CLogFileHandler(dirname(__FILE__) ."/logs/".date('Y-m-d').'.log');
$log = Log::Init($logHandler, 15);

$bonus_order_list = DB::LimitQuery('bonus_order', array(
	'condition' => array('state'=>0),
	'order' => 'ORDER BY id ASC',
	'size' => 10,
	'offset' => 0,
));
Log::DEBUG("发送红包日志:begin:");
foreach($bonus_order_list as $bonus)
{
	$hour = date("H");
	if($hour <8){
		break;
	}
	Log::DEBUG("发送红包日志:购物订单号:" . $bonus['orderid'].',红包金额： '.$bonus["total_amount"].',发送给：openid='.$bonus['openid']);
	$bonus['nick_name']  = $INI['system']['sitename'];
	$bonus['send_name']  = $INI['system']['sitename'];
	
	$res = WxPayApi::bonuspay($bonus);
	if($res['ret'] == 1)
	{
		$access_url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.WxPayConfig::APPID.'&secret='.WxPayConfig::APPSECRET;
		$accss_token_arr = json_decode(http_get($access_url));
		$re_access_token = $accss_token_arr->access_token;

		Log::DEBUG("发送红包结果日志:购物订单号:" . $bonus['orderid'].',红包金额： '.$bonus["total_amount"].',发送结果:成功');
		$up_sql = 'update bonus_order set state=1,sendtime='.time().' where id='.$bonus['id'];
		$rs = DB::query($up_sql);
		
		$txt ='{
						"touser":"'.$bonus['openid'].'",
						"msgtype":"text",
						"text":
							{
								 "content":"开团红包，已发送，感谢您的组团。."
							}
						}';
		if($rs)
		{
			$url ='https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$re_access_token;
			$result = https_post($url,$txt);
		}	
					
		//bonus_order
	}
	else if($res['ret'] == 0)
	{	
		Log::DEBUG("发送红包结果日志:购物订单号:" . $bonus['orderid'].',红包金额： '.$bonus["total_amount"].',发送结果:失败, 原因--'.$res['mes']);
		$up_sql = 'update bonus_order set state=2,sendtime='.time().',note="'.$res['mes'].'" where id='.$bonus['id'];
		DB::query($up_sql);
	}
}
var_dump('运行成功');die();



//初始化日志
$logHandler= new CLogFileHandler(dirname(__FILE__) ."/logs/".date('Y-m-d').'.log');
$log = Log::Init($logHandler, 15);

$pin_order = DB::LimitQuery('pin_order', array(
	'condition' => array('state'=>0,"endtime <= $daytimenow_ev56_s "),
	'order' => 'ORDER BY id ASC',
));

if($pin_order)
{
	
$access_url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.WxPayConfig::APPID.'&secret='.WxPayConfig::APPSECRET;
$accss_token_arr = json_decode(http_get($access_url));
$re_access_token = $accss_token_arr->access_token;

	foreach($pin_order as $pin_info)
	{
		$pin_order_list = DB::LimitQuery('pin_order_list', array(
			'condition' => array('pin_id'=>$pin_info['id']),
		));
		//var_dump($pin_order_list,$pin_info['id']);die();
		if($pin_order_list)
		{
			
			foreach($pin_order_list as $val)
			{
				//order_id
				$order = Table::Fetch('order', $val['order_id']);
				
				if($order['state'] == 'pay')
				{
					
					$team = Table::FetchForce('team', $order['team_id']);
					
					Table::UpdateCache('order', $val['order_id'], array(
							'service' => 'cash',
							'rstate' => 'berefund',
							'rereason'=>'开团失败',
							'state' => 'unpay'
					));
					
					$team = Table::Fetch('team', $order['team_id']);
					team_state($team);
					if ( $team['state'] != 'failure' ) {
						$minus =  $order['quantity'];
						Table::UpdateCache('team', $team['id'], array(
									'now_number' => array( "now_number - {$minus}", ),
						));
						
						Table::UpdateCache('team', $team['id'], array(
									'max_number' => array( "max_number + {$minus}", ),
						));
						
					}
					Table::UpdateCache('order', $val['order_id'], array(
					'express_no' => '',
					));
					
					$user = Table::Fetch('user', $order['user_id'], 'id');
					$openId = $user['open_id'];
					//money
					$transaction_id = $order["trade_no"];
					$total_fee = $order["money"]*100;
					$refund_fee = $total_fee;
					$input = new WxPayRefund();
					$input->SetTransaction_id($transaction_id);
					$input->SetTotal_fee($total_fee);
					$input->SetRefund_fee($refund_fee);
					$refund_no = WxPayConfig::MCHID.date("YmdHis");
					
					$input->SetOut_refund_no($refund_no);
					$input->SetOp_user_id(WxPayConfig::MCHID);
					//var_dump(WxPayApi);die();
					$res = (WxPayApi::refund($input));
					
					//if( is_array( $a ) )
					Log::DEBUG("退款日志:退款订单号:" . $val['order_id'].',退款金额： '.$order["money"].',退款给：openid='.$openId);
					$txt ='{
						"touser":"'.$openId.'",
						"msgtype":"text",
						"text":
							{
								 "content":"订单退款: 您的订单'.$val['order_id'].'参团未成功，现退款:'.$order['money'].'元，商品名称：'.$team['title'].'."
							}
						}';
					
					$url ='https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$re_access_token;
					$result = https_post($url,$txt);
				}
				//state
			}
			//state  = 2 update
			Table::UpdateCache('pin_order', $pin_info['id'], array(
					'state' => 2,
					));
		}
		
		
	}
		
}

var_dump('退款成功。');
die();
function https_post($url,$data)
{
	$curl = curl_init();
	curl_setopt($curl,CURLOPT_URL,$url);
	curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);
	curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);
	curl_setopt($curl,CURLOPT_POST,1);
	curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
	curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
	$result = curl_exec($curl);
	if(curl_errno($curl)){
	  return 'Errno'.curl_error($curl);
	}
	curl_close($curl);
	return $result;
}

function http_get($url)
{
	
	$curl = curl_init();
	curl_setopt($curl,CURLOPT_URL,$url);
	curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);
	curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);
	curl_setopt($curl,CURLOPT_POST,1);
	curl_setopt($curl,CURLOPT_POSTFIELDS,array());
	curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
	$result = curl_exec($curl);
	curl_close($ch);
	return $result;
}
function printf_info($data)
{
    foreach($data as $key=>$value){
        echo "<font color='#f00;'>$key</font> : $value <br/>";
    }
}

?>
